package com.atguigu.lease.web.admin.custom.converter;

import com.atguigu.lease.model.enums.ItemType;
import org.springframework.core.convert.converter.Converter;
import org.springframework.stereotype.Component;

import java.util.Arrays;


/**
 * @Author ChenXing
 * @Description 自定义接口转换器
 * @Create 2024/6/21 19:17
 */

@Component
public class StringToItemTypeConverter implements Converter<String, ItemType> {

    @Override
    public ItemType convert(String source) {

//        // 第一种方法，如果是 1 就返回 APARTMENT 枚举 如果是 2 就返回 ROOM 枚举
//        if (source == "1") {
//            return ItemType.APARTMENT;
//        } else if (source == "2") {
//            return ItemType.ROOM;
//        }

        // 第二种方法
       //  return Arrays.stream(ItemType.values()).filter(itemType -> source.equals(""+itemType.getCode())).findFirst().orElseThrow(IllegalArgumentException::new);


      //  第三种方法 课件
        for (ItemType value : ItemType.values()) {
            if (value.getCode().equals(Integer.valueOf(source))) {
                return value;
            }
        }
        throw new IllegalArgumentException("source非法");

    }
}
